﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

using System.ServiceModel.Web;
using PRET.ReportDataDefine.UIData;

namespace PRET.PRETWebService
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IPRETService”。
    [ServiceContract]
    public interface IPRETWebService
    {
        [OperationContract]
        List<OrderCheckInfo> GetJCJOrderList();

        [OperationContract]
        List<OrderCheckInfo> GetJHJOrderList();

        [OperationContract]
        List<ProductionReport> GetProductionReport(OrderCheckInfo bn);

        [OperationContract]
        List<JHJReport> GetJHJReport(OrderCheckInfo bn);

        [OperationContract]
        List<DeviceRunReport> GetDeviceRunReport();

        [OperationContract]
        List<float> GetMeterUnitPrice();

        [OperationContract]
        MeterReadingReport GetMeterReadingReport(DateTime startTime, DateTime endTime, float peakPrice, float genPrice, float lowPricea);

        [OperationContract]
        List<string> GetHighLowDeviceList();

        [OperationContract]
        List<HighLowStatusReport> GetHighLowStatusReport(string deviceID, DateTime month);

        [OperationContract]
        HighLowVoltageReport GetHighLowVoltageReport(DateTime startTime, DateTime endTime);

        [OperationContract]
        List<ProductiveTaskReportTV> GetProductiveTaskReport();

        [OperationContract]
        List<ProductionLineEfficiencyReport> GetProductionLineEfficiencyReport(DateTime year, Dictionary<string, int> quota);

        [OperationContract]
        List<TeamEfficiencyReport> GetTeamEfficiencyReport(DateTime year, Dictionary<string, int> quota);

        [OperationContract]
        void CorrectJCJOrderTime(OrderCheckInfo order);

        [OperationContract]
        void CorrectJHJOrderTime(OrderCheckInfo order);

        [OperationContract]
        void IgnoreERPOrderTime(OrderCheckInfo order);

        [OperationContract]
        List<Dictionary<string, List<EmployeAttendance>>> GetAllDepEmployeAttendance(DateTime month);

        [OperationContract]
        TeamAttendanceMain GetAllTeamAttendance(DateTime month);


        [OperationContract]
        void SetTeamAttendanceHours(double AHours, double BHours, double CHours, double DHours, double EHours, double FHours, DateTime month);

        [OperationContract]
        List<TeamAttendanceRestHours> GetTeamAttendanceHoursList(DateTime month);

        [OperationContract]
        List<HSMLJData> GetHSMLJReport(DateTime date);

        [OperationContract]
        List<ProductionReportSummaryForJSON> GetProLineStatus();

        [OperationContract]
        Dictionary<string, int> GetEfficiencyQuota(int type);

        [OperationContract]
        List<ProductionLineStandby> GetProductionLineStandby(DateTime year);

        [OperationContract]
        TVControlInfo GetTVControlInfo();

        [OperationContract]
        void SaveTVControlInfo(TVControlInfo info);
        //[OperationContract]
        //void testProLineStatus();
    }
}
